🎖️GitЯра🎖️
src/helpers/radiolib/RadioLibWrappers.h 890a2e2cffa98dea3ca88db3c3aba72ef23ff3f7 (890a2e2c) Text, 3.50 KB
Tff7b72#Tff7b72pragma once
Tff7b72#Tff7b72include T8b949e<Mesh.h>
Tff7b72#Tff7b72include T8b949e<RadioLib.h>
Tff7b72#Tff7b72ifdef USE_CC310_HW_CRYPTO
Tff7b72#Tff7b72include T8b949e<Adafruit_nRFCrypto.h>
Tff7b72#Tff7b72endif
Tff7b72struct T56d364PacketMillis Tb4b4b4{
Tffa657uint32_t Te6edf3preambleMillisTb4b4b4; T8b949e// preamble-detect -> header-valid deadline
Tffa657uint32_t Te6edf3payloadMillisTb4b4b4; T8b949e// header-valid -> rx-done deadline
Tb4b4b4}Tb4b4b4;
Te6edf3class Te6edf3RadioLibWrapper Tff7b72: Te6edf3public Te6edf3meshTff7b72:Tff7b72:Te6edf3Radio Tb4b4b4{
Te6edf3protectedTff7b72:
Te6edf3PhysicalLayerTff7b72* Te6edf3_radioTb4b4b4;
Te6edf3meshTff7b72:Tff7b72:Te6edf3MainBoardTff7b72* Te6edf3_boardTb4b4b4;
Tffa657uint32_t Te6edf3n_recvTb4b4b4, Te6edf3n_sentTb4b4b4, Te6edf3n_recv_errorsTb4b4b4;
Tffa657int16_t Te6edf3_noise_floorTb4b4b4, Te6edf3_thresholdTb4b4b4;
Tffa657bool Te6edf3_cad_enabledTb4b4b4;
Tffa657uint16_t Te6edf3_num_floor_samplesTb4b4b4;
Tffa657int32_t Te6edf3_floor_sample_sumTb4b4b4;
Tffa657uint8_t Te6edf3_preamble_sfTb4b4b4;
Tffa657void Td2a8ffidleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffstartRecvTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657float Td2a8ffpacketScoreIntTb4b4b4(Tffa657float Te6edf3snrTb4b4b4, Tffa657int Te6edf3sfTb4b4b4, Tffa657int Te6edf3packet_lenTb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657bool Te6edf3isReceivingPacketTb4b4b4(Tb4b4b4) Tff7b72=T79c0ff0Tb4b4b4;
Te6edf3virtual Tffa657void Te6edf3doResetAGCTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3publicTff7b72:
Te6edf3RadioLibWrapperTb4b4b4(Te6edf3PhysicalLayerTff7b72& Te6edf3radioTb4b4b4, Te6edf3meshTff7b72:Tff7b72:Te6edf3MainBoardTff7b72& Te6edf3boardTb4b4b4) Tff7b72: Te6edf3_radioTb4b4b4(Tff7b72&Te6edf3radioTb4b4b4)Tb4b4b4, Te6edf3_boardTb4b4b4(Tff7b72&Te6edf3boardTb4b4b4)Tb4b4b4, Te6edf3_preamble_sfTb4b4b4(T79c0ff0Tb4b4b4) Tb4b4b4{ Te6edf3n_recv Tff7b72= Te6edf3n_sent Tff7b72= T79c0ff0Tb4b4b4; Tb4b4b4}
Tffa657void Te6edf3beginTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Te6edf3virtual Tffa657void Te6edf3powerOffTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3_radioTff7b72-Tff7b72>Te6edf3sleepTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}
Tffa657int Te6edf3recvRawTb4b4b4(Tffa657uint8_tTff7b72* Te6edf3bytesTb4b4b4, Tffa657int Te6edf3szTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657uint32_t Td2a8ffgetEstAirtimeForTb4b4b4(Tffa657int Te6edf3len_bytesTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffstartSendRawTb4b4b4(Tff7b72const Tffa657uint8_tTff7b72* Te6edf3bytesTb4b4b4, Tffa657int Te6edf3lenTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffisSendCompleteTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffonSendFinishedTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffisInRecvModeTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffisChannelActiveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffisReceivingTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3isReceivingPacketTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72return Tffa657trueTb4b4b4;
Tff7b72return Te6edf3isChannelActiveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3virtual Tffa657void Te6edf3setParamsTb4b4b4(Tffa657float Te6edf3freqTb4b4b4, Tffa657float Te6edf3bwTb4b4b4, Tffa657uint8_t Te6edf3sfTb4b4b4, Tffa657uint8_t Te6edf3crTb4b4b4) Tff7b72= T79c0ff0Tb4b4b4;
Tffa657uint32_t Td2a8ffgetRngSeedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetTxPowerTb4b4b4(Tffa657int8_t Te6edf3dbmTb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657float Te6edf3getCurrentRSSITb4b4b4(Tb4b4b4) Tff7b72=T79c0ff0Tb4b4b4;
Te6edf3virtual Tffa657uint8_t Te6edf3getSpreadingFactorTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3LORA_SFTb4b4b4; Tb4b4b4}
Tff7b72static Tffa657uint16_t Te6edf3preambleLengthForSFTb4b4b4(Tffa657uint8_t Te6edf3sfTb4b4b4) Tb4b4b4{ Tff7b72return Te6edf3sf Tff7b72<Tff7b72= T79c0ff8 Tff7b72? T79c0ff32 Tff7b72: T79c0ff16Tb4b4b4; Tb4b4b4}
Tffa657void Te6edf3updatePreambleTb4b4b4(Tffa657uint8_t Te6edf3sfTb4b4b4) Tb4b4b4{ Te6edf3_preamble_sf Tff7b72= Te6edf3sfTb4b4b4; Te6edf3_radioTff7b72-Tff7b72>Te6edf3setPreambleLengthTb4b4b4(Te6edf3preambleLengthForSFTb4b4b4(Te6edf3sfTb4b4b4)Tb4b4b4)Tb4b4b4; Tb4b4b4}
Te6edf3PacketMillis Te6edf3calcMaxPacketMillisTb4b4b4(Tffa657uint8_t Te6edf3sfTb4b4b4, Tffa657float Te6edf3bwTb4b4b4, Tffa657uint8_t Te6edf3crTb4b4b4, Tffa657uint8_t Te6edf3preambleSymbolsTb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657int16_t Te6edf3performChannelScanTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657int Td2a8ffgetNoiseFloorTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3_noise_floorTb4b4b4; Tb4b4b4}
Tffa657void Td2a8fftriggerNoiseFloorCalibrateTb4b4b4(Tffa657int Te6edf3thresholdTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffsetCADEnabledTb4b4b4(Tffa657bool Te6edf3enableTb4b4b4) Te6edf3override Tb4b4b4{ Te6edf3_cad_enabled Tff7b72= Te6edf3enableTb4b4b4; Tb4b4b4}
Tffa657void Td2a8ffresetAGCTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657void Td2a8ffloopTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657uint32_t Td2a8ffgetPacketsRecvTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3n_recvTb4b4b4; Tb4b4b4}
Tffa657uint32_t Td2a8ffgetPacketsRecvErrorsTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3n_recv_errorsTb4b4b4; Tb4b4b4}
Tffa657uint32_t Td2a8ffgetPacketsSentTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3n_sentTb4b4b4; Tb4b4b4}
Tffa657void Td2a8ffresetStatsTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3n_recv Tff7b72= Te6edf3n_sent Tff7b72= Te6edf3n_recv_errors Tff7b72= T79c0ff0Tb4b4b4; Tb4b4b4}
Te6edf3virtual Tffa657float Te6edf3getLastRSSITb4b4b4(Tb4b4b4) Tff7b72const Te6edf3overrideTb4b4b4;
Te6edf3virtual Tffa657float Te6edf3getLastSNRTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3overrideTb4b4b4;
Tffa657float Td2a8ffpacketScoreTb4b4b4(Tffa657float Te6edf3snrTb4b4b4, Tffa657int Te6edf3packet_lenTb4b4b4) Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3packetScoreIntTb4b4b4(Te6edf3snrTb4b4b4, T79c0ff10Tb4b4b4, Te6edf3packet_lenTb4b4b4)Tb4b4b4; Tb4b4b4} T8b949e// assume sf=10
Te6edf3virtual Tffa657bool Te6edf3setRxBoostedGainModeTb4b4b4(Tffa657boolTb4b4b4) Tb4b4b4{ Tff7b72return Tffa657falseTb4b4b4; Tb4b4b4}
Te6edf3virtual Tffa657bool Te6edf3getRxBoostedGainModeTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Tffa657falseTb4b4b4; Tb4b4b4}
Te6edf3virtual Tffa657bool Te6edf3configSideDetectorsTb4b4b4(Tff7b72const Tffa657uint8_t Te6edf3sideDetSFsTb4b4b4[Tb4b4b4]Tb4b4b4, Tffa657uint8_t Te6edf3numTb4b4b4, Tffa657float Te6edf3bwTb4b4b4) Tb4b4b4{ Tff7b72return Tffa657falseTb4b4b4; Tb4b4b4}
Tb4b4b4}Tb4b4b4;
T8b949e/**
* \brief an RNG impl using the noise from the LoRa radio as entropy.
* NOTE: this is VERY SLOW! Use only for things like creating new LocalIdentity
*/
Te6edf3class Te6edf3RadioNoiseListener Tff7b72: Te6edf3public Te6edf3meshTff7b72:Tff7b72:Te6edf3RNG Tb4b4b4{
Te6edf3PhysicalLayerTff7b72* Te6edf3_radioTb4b4b4;
Te6edf3publicTff7b72:
Te6edf3RadioNoiseListenerTb4b4b4(Te6edf3PhysicalLayerTff7b72& Te6edf3radioTb4b4b4)Tff7b72: Te6edf3_radioTb4b4b4(Tff7b72&Te6edf3radioTb4b4b4) Tb4b4b4{ Tb4b4b4}
Tffa657void Te6edf3randomTb4b4b4(Tffa657uint8_tTff7b72* Te6edf3destTb4b4b4, Tffa657size_t Te6edf3szTb4b4b4) Te6edf3override Tb4b4b4{
Tff7b72#Tff7b72ifdef USE_CC310_HW_CRYPTO
T8b949e// CC310 TRNG is higher quality and environment-independent vs radio RSSI noise.
Te6edf3nRFCryptoTb4b4b4.Te6edf3RandomTb4b4b4.Te6edf3generateTb4b4b4(Te6edf3destTb4b4b4, Tb4b4b4(Tffa657uint16_tTb4b4b4)Te6edf3szTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72else
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3szTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4) Tb4b4b4{
Te6edf3destTb4b4b4[Te6edf3iTb4b4b4] Tff7b72= Te6edf3_radioTff7b72-Tff7b72>Te6edf3randomByteTb4b4b4(Tb4b4b4) Tff7b72^ Tb4b4b4(Tff7b72:Tff7b72:Te6edf3randomTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff256Tb4b4b4) Tff7b72& T79c0ff0xFFTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72endif
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Served by rngit 1.5.4 - Generated in 0.06s